/*
	File:		IGameState.h
	Course:		SGD 1301
	Author:		dmonroe
	Purpose:	IGameState interface class is the base class
				for the game states
*/

#pragma once


////////////////////////////////////////////////////////////
// IGameState class
//	- interface for game states
//	- each child class is expected to be a singleton
class IGameState
{
public:
	// Abstract Base Class
	virtual ~IGameState( void )	= 0
	{

	}

	virtual void	Enter	( void )	= 0;	// load resources
	virtual void	Exit	( void )	= 0;	// unload resources

	virtual bool	Input	( void )	= 0;	// handle user input
	virtual void	Update	( float fElapsedTime )	= 0;	// update game entities
	virtual void	Render	( void )	= 0;	// render game entities
};

